﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace T.FAS.Runtime.Metadata.Entity.Page
{
    /// <summary>
    /// 菜单数据实体用于将Fas的菜单同步为系统管理的菜单。
    /// 菜单数据实体 SYS_SysMenu表数据
    /// </summary>
    [Serializable]
    [DataContract]
    public class MenuEntity
    {
        /// <summary>
        /// 内码 主键
        /// </summary>
        [DataMember]
        public string MenuID { get; set; }

        /// <summary>
        /// 老内码（用于表示Saas化应用迁移过来的新菜单所对应的原来的菜单）
        /// </summary>
        [DataMember]
        public string OldMenuID { get; set; }
        /// <summary>
        /// 父级内码
        /// </summary>
        [DataMember]
        public string ParentID { get; set; }
        /// <summary>
        /// 编码
        /// </summary>
        [DataMember]
        public string Code { get; set; }
        /// <summary>
        /// 名称
        /// </summary>
        [DataMember]
        public string FullName { get; set; }

        /// <summary>
        /// 名称
        /// </summary>
        [DataMember]
        public string FullName_Lang1 { get; set; }

        /// <summary>
        /// 名称
        /// </summary>
        [DataMember]
        public string FullName_Lang2 { get; set; }

        /// <summary>
        /// 名称
        /// </summary>
        [DataMember]
        public string FullName_Lang3 { get; set; }

        /// <summary>
        /// 描述
        /// </summary>
        [DataMember]
        public string Description { get; set; }

        /// <summary>
        /// 描述
        /// </summary>
        [DataMember]
        public string Description_Lang1 { get; set; }

        /// <summary>
        /// 描述
        /// </summary>
        [DataMember]
        public string Description_Lang2 { get; set; }

        /// <summary>
        /// 描述
        /// </summary>
        [DataMember]
        public string Description_Lang3 { get; set; }

        /// <summary>
        /// 图标
        /// </summary>
        [DataMember]
        public string IMG { get; set; }
        /// <summary>
        /// 类型
        /// </summary>
        [DataMember]
        public string Category { get; set; }
        /// <summary>
        /// 页面路径
        /// </summary>
        [DataMember]
        public string NavigateUrl { get; set; }
        /// <summary>
        /// 表单名称
        /// </summary>
        [DataMember]
        public string FormName { get; set; }
        /// <summary>
        /// 目标
        /// </summary>
        [DataMember]
        public string Target { get; set; }
        /// <summary>
        /// 是否展开
        /// </summary>
        [DataMember]
        public int? IsUnfold { get; set; }
        /// <summary>
        /// 允许编辑
        /// </summary>
        [DataMember]
        public int? AllowEdit { get; set; }
        /// <summary>
        /// 允许删除
        /// </summary>
        [DataMember]
        public int? AllowDelete { get; set; }
        /// <summary>
        /// 是否可用
        /// </summary>
        [DataMember]
        public int? Enabled { get; set; }
        /// <summary>
        /// 排序码
        /// </summary>
        [DataMember]
        public int? SortCode { get; set; }
        /// <summary>
        /// 删除标识
        /// </summary>
        [DataMember]
        public int? DeleteMark { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        [DataMember]
        public DateTime? CreateDate { get; set; }
        /// <summary>
        /// 创建人内码
        /// </summary>
        [DataMember]
        public string CreateUserID { get; set; }
        /// <summary>
        /// 创建人
        /// </summary>
        [DataMember]
        public string CreateUserName { get; set; }
        /// <summary>
        /// 修改时间
        /// </summary>
        [DataMember]
        public DateTime? ModifyDate { get; set; }
        /// <summary>
        /// 修改人内码
        /// </summary>
        [DataMember]
        public string ModifyUserID { get; set; }
        /// <summary>
        /// 修改人
        /// </summary>
        [DataMember]
        public string ModifyUserName { get; set; }
        /// <summary>
        /// 允许数据权限
        /// </summary>
        [DataMember]
        public int? IsData { get; set; }
        /// <summary>
        /// 应用内码
        /// </summary>
        [DataMember]
        public string ApplicationID { get; set; }
        /// <summary>
        /// 开发负责人
        /// </summary>
        [DataMember]
        public string Developer { get; set; }
        /// <summary>
        /// 开发完成时间
        /// </summary>
        [DataMember]
        public DateTime? DevCompletionTime { get; set; }
        /// <summary
        /// 测试负责人
        /// </summary>
        [DataMember]
        public string Tester { get; set; }
        /// <summary>
        /// 测试完成时间
        /// </summary>
        [DataMember]
        public DateTime? TestCompletionTime { get; set; }
        /// <summary>
        /// 上线时间
        /// </summary>
        [DataMember]
        public DateTime? PublishTime { get; set; }
        /// <summary>
        /// 是否明细
        /// </summary>
        [DataMember]
        public int? IsDetail { get; set; }
        /// <summary>
        /// 层级
        /// </summary>
        [DataMember]
        public int? Layer { get; set; }
        /// <summary> 
        /// 层级码
        /// </summary>
        [DataMember]
        public string LayerCode { get; set; }

        /// <summary>
        /// 路径码
        /// </summary>
        [DataMember]
        public string Path { get; set; }

        /// <summary>
        /// 功能模块类型 1:应用 2：模块 3：功能组（旧版菜单组） 4：功能（旧版菜单）
        /// </summary>
        [DataMember]
        public string MenuType { get; set; }

        /// <summary>
        /// 功能类型
        /// 1：业务服务接口 充电业务，充值业务等
        /// 2：公共业务服务接口 支付业务，系统业务，会员业务等
        /// 3：基础业务服务接口 客户服务，企业服务等
        /// 4：公共技术服务接口
        /// 5：公共技术组件
        /// 6：前台页面 官网，微信，APP等
        /// 7：后台业务 运行框架运行的后台管理功能
        /// 8：嵌入式软件
        /// 9：通信服务
        /// 10：数据清洗服务
        /// </summary>
        [DataMember]
        public string AppType { get; set; }

        /// <summary>
        /// 是否显示 1 是 0 否
        /// </summary>
        [DataMember]
        public string IsShow { get; set; }

        /// <summary>
        /// 是否引用 1 是 0 否
        /// </summary>
        [DataMember]
        public string IsReferenced { get; set; }

        /// <summary>
        /// 是否被权限控制 1 是 0 否
        /// </summary>
        [DataMember]
        public string IsAuthorityLimited { get; set; }

        /// <summary>
        /// 功能组内码
        /// </summary>
        [DataMember]
        public string GroupID { get; set; }

        /// <summary>
        /// 重要程度
        /// 1：低
        /// 2：中等
        /// 3：重要
        /// 4：核心
        /// </summary>
        [DataMember]
        public string Importance { get; set; }

        /// <summary>
        /// 负责人内码
        /// </summary>
        [DataMember]
        public string Manager { get; set; }

        /// <summary>
        /// 负责人名称
        /// </summary>
        [DataMember]
        public string ManagerName { get; set; }

        /// <summary>
        /// 责任部门内码
        /// </summary>
        [DataMember]
        public string Department { get; set; }

        /// <summary>
        /// 责任部门名称
        /// </summary>
        [DataMember]
        public string DepartmentName { get; set; }

        /// <summary>
        /// 原因
        /// </summary>
        [DataMember]
        public string Reason { get; set; }

        /// <summary>
        /// app端Url
        /// </summary>
        [DataMember]
        public string AppUrl { get; set; }
    }
}
